/*
 * ServletMenu.java
 *
 * Created on September 29, 2007, 12:53 PM
 */
package wasolicitudesfiec.servlets;
import java.util.logging.Level;
import java.util.logging.Logger;
import wasolicitudesfiec.xml.MapeoFormularioActividad;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import wasolicitudesfiec.logicacontrol.Logica;
/**
 *
 * @author kabad
 * @version
 */
public class ServletMenu extends HttpServlet {

    private String formulario;

    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session;
        String accion;
        String comando;
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        session = request.getSession(true);
        comando = request.getParameter("comando");
        accion = request.getParameter("accion");
        if (comando.equals("menu")) {
            session.removeAttribute("instancia");
            if (accion.equals("procesoAIniciar")) {
                session.setAttribute("menuAcordeonDesplegado", 1);
                procesoAIniciar(request, response);
            } else if (accion.equals("actividadesPendientes")) {
                session.setAttribute("menuAcordeonDesplegado", 2);
                actividadesPendientes(request, response);
            } else if (accion.equals("procesosEnCurso")) {
                session.setAttribute("menuAcordeonDesplegado", 3);
                procesosEnCurso(request, response);
            } else if (accion.equals("historial")) {
                session.setAttribute("menuAcordeonDesplegado", 4);
                historial(request, response);
            } else if (accion.equals("actividad")) {
                actividad(request, response);
            }
       }else if(comando.equals("logout")){
            logout(request,response);
        }
        System.out.println("comando=" + comando + " accion=" + accion);
        out.close();
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }

    private void logout(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession(false);
        if (session != null) {
            try {
                session.invalidate();
                response.sendRedirect("/WA_SolicitudesFIEC/faces/Inicio.jsp");
            } catch (IOException ex) {
                Logger.getLogger(ServletMenu.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

  
    // </editor-fold>
    private void procesoAIniciar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String bandera;
        RequestDispatcher dispacher;

        String primeraActividad;
        MapeoFormularioActividad mapeoFormularioActividad = new MapeoFormularioActividad(Logica.getRealPath_XML());
        String idModelo = request.getParameter("idModelo");
//        MapeoFormularioActividad map=new MapeoFormularioActividad();
        Logica logica = new Logica();
        bandera = request.getParameter("instProceso");
        System.out.print("bandera"+ bandera);
        if (idModelo.equals(Logica.modelo_SolicitarSerAyudante) && bandera == null) {
            formulario = mapeoFormularioActividad.getFormulario(idModelo, "Ayudantias Disponibles");
        }else if (idModelo.equals(Logica.modelo_SolicitarSerAyudante) && bandera != null){
             primeraActividad = logica.leerNombreDeLaPrimeraActividad(idModelo, Logica.version_SolicitarSerAyudante);
            formulario = mapeoFormularioActividad.getFormulario(idModelo, primeraActividad);
        
        }else if (idModelo.equals(Logica.modelo_SolicitarAyudantes)) {
            primeraActividad = logica.leerNombreDeLaPrimeraActividad(idModelo, Logica.version_SolicitarAyudantes);
            formulario = mapeoFormularioActividad.getFormulario(idModelo, primeraActividad);
        }else if (idModelo.equals(Logica.modelo_SolicitarCambioCarrera)) {
            primeraActividad = logica.leerNombreDeLaPrimeraActividad(idModelo, Logica.version_SolicitarCambioCarrera);
            formulario = mapeoFormularioActividad.getFormulario(idModelo, primeraActividad);
        }
        if (formulario != null) {
            dispacher = request.getRequestDispatcher(formulario);
            dispacher.forward(request, response);
        }
    }

    private void actividadesPendientes(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        RequestDispatcher dispacher;
        dispacher = request.getRequestDispatcher("/faces/general/ListaActividadesPendientes.jsp");
        dispacher.forward(request, response);

    }

    private void procesosEnCurso(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        RequestDispatcher dispacher;
        dispacher = request.getRequestDispatcher("/faces/general/ListaProcesosEnCurso.jsp");
        dispacher.forward(request, response);

    }

    private void historial(HttpServletRequest request, HttpServletResponse response) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    private void actividad(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        RequestDispatcher dispacher;
        String formulario;

        MapeoFormularioActividad mapeoFormularioActividad = new MapeoFormularioActividad(getServletContext().getRealPath("/xml/"));
        String actividad = request.getParameter("actividad");
        String instanciaProyecto = request.getParameter("instancia");
        String modelo;

//        MapeoFormularioActividad map=new MapeoFormularioActividad();
        Logica logica = new Logica();
        modelo = logica.getProjectNameOfInstance(instanciaProyecto);
        System.out.println("Modelo: " + modelo + " Actividad:" + actividad);
        formulario = mapeoFormularioActividad.getFormulario(modelo, actividad);
        System.out.println("formulario: " + formulario);

//        System.out.println("Path: "+getServletContext().getRealPath("/xml/"));
        if (formulario != null) {
            dispacher = request.getRequestDispatcher(formulario);
            System.out.println("formulario: " + formulario);

            dispacher.forward(request, response);
        }
    }
     
}
